import { terser } from 'rollup-plugin-terser';

// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
export default function () {
	return {
		// 静态资源的存放目录
		assetsDir: 'assets',

		// 小于此阈值的导入或引用资源将内联为 base64 编码，以避免额外的 http 请求。设置为 0 可以完全禁用此项
		assetsInlineLimit: 4096,

		// 如果设置为false，整个项目中的所有 CSS 将被提取到一个 CSS 文件中
		cssCodeSplit: true,

		// 构建后生成source map 文件
		sourcemap: true,

		// 禁用 brotli 压缩大小报告
		brotliSize: false,

		rollupOptions: {
			plugins: [
				// 使用 terser 插件去除 console.log
				terser({
					compress: {
						drop_console: true,
						drop_debugger: true
					}
				})
			],
			output: {
				chunkFileNames: 'assets/js/[name]-[hash].js',
				entryFileNames: 'assets/js/[name]-[hash].js',
				assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
				// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
				manualChunks(id: any) {
					// 静态资源分拆打包
					if (id.includes('node_modules')) {
						return id.toString().split('node_modules/')[1].split('/')[0].toString();
					}
				}
			}
		}
	};
}
